{
    "/api/v2/clients": {
        "get": {
            "description": "Lists available clients for processing collection events",
            "tags": [
                "Clients",
                "Enterprise"
            ],
            "summary": "List Clients",
            "parameters": [
                {
                    "$ref": "#/definitions/parameters.PreferHeader"
                },
                {
                    "type": "string",
                    "description": "Sort by column. Can be used multiple times; prepend hyphen for descending order. Sortable columns are name, ip_address, hostname, configured_user, last_checkin, completed_job_count, id, created_at, updated_at, deleted_at.",
                    "name": "sort_by",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "name",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "ip_address",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "hostname",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "configured_user",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "version",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "user_sid",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "last_checkin",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "current_job_id",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "completed_job_count",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "domain_controller",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "id",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "created_at",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "updated_at",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "deleted_at",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Valid values are `true` or `false` and defaults to `true`. When a value of `true` is passed, any domains associated with scheduled and finished jobs for each client will have expanded properties including `name` and `type`. When a value of `false` is passed, these same domains will only return as a list of `objectid`s.",
                    "name": "hydrate_domains",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Valid values are `true` or `false` and defaults to `true`. When a value of `true` is passed, any OUs associated with scheduled and finished jobs for each client will have expanded properties including `name` and `type`. When a value of `false` is passed, these same OUs will only return as a list of `objectid`s.",
                    "name": "hydrate_ous",
                    "in": "query",
                    "required": false
                }
            ],
            "responses": {
                "200": {
                    "description": "OK",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/definitions/api.BasicResponse"
                            }
                        }
                    }
                },
                "Error": {
                    "$ref": "#/components/responses/defaultError"
                }
            }
        },
        "post": {
            "description": "Creates a client for collection events",
            "tags": [
                "Clients",
                "Enterprise"
            ],
            "summary": "Create Client",
            "parameters": [
                {
                    "$ref": "#/definitions/parameters.PreferHeader"
                }
            ],
            "requestBody": {
                "description": "The request body for creating a client",
                "required": true,
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/definitions/v2.ClientCreateRequest"
                        }
                    }
                }
            },
            "responses": {
                "200": {
                    "description": "OK",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/definitions/api.BasicResponse"
                            }
                        }
                    }
                },
                "Error": {
                    "$ref": "#/components/responses/defaultError"
                }
            }
        }
    },
    "/api/v2/clients/error": {
        "post": {
            "description": "Logs a client enumeration error",
            "tags": [
                "Clients",
                "Enterprise"
            ],
            "summary": "Client Error",
            "parameters": [
                {
                    "$ref": "#/definitions/parameters.PreferHeader"
                }
            ],
            "requestBody": {
                "description": "The request body for logging a client enumeration error",
                "required": true,
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/definitions/v2.ClientErrorRequest"
                        }
                    }
                }
            },
            "responses": {
                "202": {
                    "description": "Accepted"
                },
                "Error": {
                    "$ref": "#/components/responses/defaultError"
                }
            }
        }
    },
    "/api/v2/clients/update": {
        "put": {
            "description": "Endpoint for clients to update their own information at startup. Note: caller must be a client. For users, this endpoint will return a 404 as they are not expected or allowed to call this endpoint.",
            "tags": [
                "Clients",
                "Enterprise"
            ],
            "summary": "Update Client Values",
            "parameters": [
                {
                    "$ref": "#/definitions/parameters.PreferHeader"
                }
            ],
            "requestBody": {
                "description": "The request body for updating a client",
                "required": true,
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/definitions/v2.ClientUpdateSelfRequest"
                        }
                    }
                }
            },
            "responses": {
                "200": {
                    "description": "OK",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/definitions/api.BasicResponse"
                            }
                        }
                    }
                },
                "Error": {
                    "$ref": "#/components/responses/defaultError"
                }
            }
        }
    },
    "/api/v2/clients/{client_id}": {
        "parameters": [
            {
                "type": "string",
                "description": "Client ID",
                "name": "client_id",
                "in": "path",
                "required": true
            }
        ],
        "get": {
            "description": "Gets given client for processing collection events",
            "tags": [
                "Clients",
                "Enterprise"
            ],
            "summary": "Retrieve Client",
            "parameters": [
                {
                    "$ref": "#/definitions/parameters.PreferHeader"
                }
            ],
            "responses": {
                "200": {
                    "description": "OK",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/definitions/api.BasicResponse"
                            }
                        }
                    }
                },
                "Error": {
                    "$ref": "#/components/responses/defaultError"
                }
            }
        },
        "put": {
            "description": "Update a client for processing collection events",
            "tags": [
                "Clients",
                "Enterprise"
            ],
            "summary": "Update Client",
            "parameters": [
                {
                    "$ref": "#/definitions/parameters.PreferHeader"
                }
            ],
            "requestBody": {
                "description": "The request body for updating a client",
                "required": true,
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/definitions/v2.ClientUpdateRequest"
                        }
                    }
                }
            },
            "responses": {
                "200": {
                    "description": "OK",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/definitions/api.BasicResponse"
                            }
                        }
                    }
                },
                "Error": {
                    "$ref": "#/components/responses/defaultError"
                }
            }
        },
        "delete": {
            "description": "Delete a client for processing collection events",
            "tags": [
                "Clients",
                "Enterprise"
            ],
            "summary": "Delete Client",
            "parameters": [
                {
                    "$ref": "#/definitions/parameters.PreferHeader"
                }
            ],
            "responses": {
                "200": {
                    "description": "OK"
                },
                "Error": {
                    "$ref": "#/components/responses/defaultError"
                }
            }
        }
    },
    "/api/v2/clients/{client_id}/token": {
        "parameters": [
            {
                "type": "string",
                "description": "Client ID",
                "name": "client_id",
                "in": "path",
                "required": true
            }
        ],
        "put": {
            "description": "Regenerate the authentication token for a client",
            "tags": [
                "Clients",
                "Enterprise"
            ],
            "summary": "Regenerate the authentication token for a client",
            "parameters": [
                {
                    "$ref": "#/definitions/parameters.PreferHeader"
                }
            ],
            "responses": {
                "200": {
                    "description": "OK",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/definitions/api.ResponseWrapper"
                            }
                        }
                    }
                },
                "Error": {
                    "$ref": "#/components/responses/defaultError"
                }
            }
        }
    },
    "/api/v2/clients/{client_id}/completed-tasks": {
        "parameters": [
            {
                "type": "string",
                "description": "Client ID",
                "name": "client_id",
                "in": "path",
                "required": true
            }
        ],
        "get": {
            "deprecated": true,
            "description": "Get all completed tasks for a client",
            "tags": [
                "Clients",
                "Enterprise"
            ],
            "summary": "Get all completed tasks for a client",
            "parameters": [
                {
                    "$ref": "#/definitions/parameters.PreferHeader"
                },
                {
                    "type": "integer",
                    "description": "Paging Skip",
                    "name": "skip",
                    "in": "query"
                },
                {
                    "type": "integer",
                    "description": "Paging Limit",
                    "name": "limit",
                    "in": "query"
                },
                {
                    "type": "string",
                    "description": "Sort by column. Can be used multiple times; prepend hyphen for descending order. Sortable columns are client_id, event_id, execution_time, status, start_time, end_time, log_path, domain_controller, event_title, last_ingest, id, created_at, updated_at, deleted_at.",
                    "name": "sort_by",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "event_id",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "execution_time",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "status",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "start_time",
                    "in": "path",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "end_time",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "log_path",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "session_collection",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "local_group_collection",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "ad_structure_collection",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "domain_controller",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "event_title",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "last_ingest",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "id",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "created_at",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "updated_at",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "deleted_at",
                    "in": "query",
                    "required": false
                }
            ],
            "responses": {
                "200": {
                    "description": "OK",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/definitions/api.ResponseWrapper"
                            }
                        }
                    }
                },
                "Error": {
                    "$ref": "#/components/responses/defaultError"
                }
            }
        }
    },
    "/api/v2/clients/{client_id}/completed-jobs": {
        "parameters": [
            {
                "type": "string",
                "description": "Client ID",
                "name": "client_id",
                "in": "path",
                "required": true
            }
        ],
        "get": {
            "description": "Get all completed jobs for a client",
            "tags": [
                "Clients",
                "Enterprise"
            ],
            "summary": "Get all completed jobs for a client",
            "parameters": [
                {
                    "$ref": "#/definitions/parameters.PreferHeader"
                },
                {
                    "type": "integer",
                    "description": "Paging Skip",
                    "name": "skip",
                    "in": "query"
                },
                {
                    "type": "integer",
                    "description": "Paging Limit",
                    "name": "limit",
                    "in": "query"
                },
                {
                    "type": "string",
                    "description": "Sort by column. Can be used multiple times; prepend hyphen for descending order. Sortable columns are client_id, event_id, execution_time, status, start_time, end_time, log_path, domain_controller, event_title, last_ingest, id, created_at, updated_at, deleted_at.",
                    "name": "sort_by",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "event_id",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "execution_time",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "status",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "start_time",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "end_time",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "log_path",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "session_collection",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "local_group_collection",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "ad_structure_collection",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "domain_controller",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq",
                    "name": "event_title",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "last_ingest",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "id",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "created_at",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "updated_at",
                    "in": "query",
                    "required": false
                },
                {
                    "type": "string",
                    "description": "Filter results by column value. Valid filter predicates are eq, neq, gt, gte, lt, lte",
                    "name": "deleted_at",
                    "in": "query",
                    "required": false
                }
            ],
            "responses": {
                "200": {
                    "description": "OK",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/definitions/model.DisplayClientScheduledJob"
                            }
                        }
                    }
                },
                "Error": {
                    "$ref": "#/components/responses/defaultError"
                }
            }
        }
    }
}
